Offloading disk-related tasks from RAID adapter to distributed service processors in switched drive connection network enclosure

ABSTRACT

A storage system includes a RAID adapter, disk array switches, sub-processors, and hard disk drives (HDDs). A disk-related operation is initiated in the RAID adapter. The RAID adapter dispatches a command to a disk array processor (or sub-processor) in an enclosure for the processor to perform the operation on one or more drives. The adapter may dispatch the command to a processor in a single enclosure through a disk array switch or to processors in multiple enclosures through switches in the upstream enclosures. The adapter is then free to perform other functions. The processor commences the specified operation on one or more selected drives, either sequentially one at a time or sequentially more than one (or all) at a time. Upon completion of the operation, the results are transmitted by the processor and received by the adapter. Thus, by offloading the task to the distributed sub-processors, the burden on the RAID adapter is significantly reduced, system bandwidth usage is reduced, and access to other drives within the enclosure (as well as within other enclosures) may be maintained. Tasks which may be offloaded in such a manner include, but are not limited to, drive firmware updating, drive scrubbing and secure data erasure.

RELATED APPLICATION DATA

The present application is related to commonly-assigned and co-pending United States Application Serial Numbers 11/______ [IBM Docket # TUC920050124, entitled ENCLOSURE-BASED RAID PARITY ASSIST, and 11/______ [IBM Docket #TUC920050141, entitled ISOLATING FAILING DRIVE FROM DISK ARRAY FOR DIAGNOSTIC OPERATIONS, filed on the filing date hereof, which applications are incorporated herein by reference in their entireties.

TECHNICAL FIELD

The present invention relates generally to RAID storage systems and, in particular, to performing drive-related tasks with minimal impact on the RAID adapter and on the balance of the system.

BACKGROUND ART

Many computer-related systems now include redundant components for high reliability and availability. For example, in a RAID storage system, an enclosure includes an array of hard disk drives (HDDs) which are each coupled through independent ports to both of a pair of redundant disk array switches. One of a pair of redundant sub-processors may be coupled to one of the switches while the other of the pair of sub-processors may be coupled to the other switch. Alternatively, a single sub-processor may be coupled to both switches and logically partitioned into two images, each logically coupled to one of the switches. The sub-processors handle power notification and other enclosure management functions. Each switch may also be coupled through a fabric or network to both of a pair of redundant RAID adapters external to the enclosure; the adapters communicate over the fabric with the sub-processors through ports in the switches. The system may include additional enclosures, each coupled in daisy-chain fashion in the network to the disk array switches of the previous enclosure.

Conventionally, numerous tasks are performed by the RAID adapter(s) which are disk-related. In order to access a drive, the RAID adapter initiates an “open” to the drive. Whatever switches are located between the adapter and the drive are configured to establish the necessary ports dedicated to connect the drive to the adapter. If the selected drive is at the “bottom” of a series of disk enclosures, switches in all of the enclosures above it are required to be involved to establish the path from the adapter to the drive. And, while access is being made over the path, the participating ports cannot be used to transmit data to or from other drives.

For example, when disk drive firmware is to be updated, the RAID adapter opens a path with a drive to take the drive offline, downloads the firmware to update the drive, then brings the drive back online. The procedure is performed for each drive, requires substantial adapter and fabric resources and, all of the ports that were configured to establish the path from the adapter to the device being updated cannot be used to access other devices, is disruptive to the system as a whole.

By way of another example, “data scrubbing” is performed to examine a disk for latent media errors. If particular data which has been written to an area of the disk which is defective is not read very often, it may be a long time before the error is detected, possibly resulting in a data loss. By systematically accessing sectors of each disk, such defects may be identified and corrective action taken before an actual drive failure. However, again the procedure requires substantial adapter and fabric resources and tends to be disruptive to the system as a whole.

In a third example, the accidental release of sensitive data is a growing concern for any of a number of industries. Such data may include classified documents, industrial secrets and financial records, to name a few. When hard drives on which such data has been stored are taken out of service, the data may still be stored on the disk, even if it has been “erased”. Moreover, performing a low level reformat is not sufficient to ensure that the data has been irrevocably destroyed since it may still be possible to recover the data from residual magnetism on the disk. Consequently, there are a number of protocols which may be implemented to ensure the destruction of data. In addition to physically destroying the disk by means of grinding and degaussing, algorithms have been developed prescribing multiple overwrites of specified data patterns in defined sequences to every location on the disk. Some methods require verification that the data stored in the locations of the disk is the pattern last updated. Strict compliance with the procedures and validation of the method is required to consider the data securely erased. Typically, utilities are written for operating systems to perform the task. When implemented in a RAID array, the use of substantial adapter and system resources is required.

Consequently, a need remains to be able to perform various disk-related maintenance operations without burdening the RAID adapters and without disrupting access to the rest of the disk array or to the network.

SUMMARY OF THE INVENTION

The present invention includes a storage system includes a RAID adapter, disk array switches, sub-processors, and hard disk drives (HDDs). A disk-related operation is initiated in the RAID adapter. The RAID adapter dispatches a command to a disk array processor (or sub-processor) in an enclosure for the processor to perform the operation on one or more drives. The adapter is then free to perform other functions. The adapter may dispatch the command to a processor in a single enclosure through a disk array switch or to processors in multiple enclosures through switches in the upstream enclosures. The processor commences the specified operation on one or more selected drives, either sequentially one at a time or more than one (or all) at a time simultaneously. Upon completion of the operation, the results are transmitted by the processor and received by the adapter. Thus, by offloading the task to the distributed sub-processors, the burden on the RAID adapter is significantly reduced, system bandwidth usage is reduced, and access to other drives within the enclosure (as well as within other enclosures) may be maintained. Tasks which may be offloaded in such a manner include, but are not limited to, drive firmware updating, drive scrubbing and secure data erasure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a RAID storage system in which the present invention may be implemented;

FIG. 2 is a block diagram of a RAID storage system having multiple enclosures;

FIG. 3 is flowchart of a method of the present invention;

FIG. 4 is a flowchart of a method of drive firmware updating according to the present invention;

FIG. 5 is a flowchart of a method of drive data scrubbing according to the present invention; and

FIG. 6 is a flowchart of a method of secure data erasure according to the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 is a block diagram of a RAID storage system 100 in which the present invention may be implemented. The system 100 includes a redundant pair of RAID adapters or controllers 110A, 110B (collectively referred to as 110) which are coupled to one or more servers. The system 100 further includes an enclosure 115 housing a pair of redundant disk array switches 120A and 120B (collectively referred to as 120). The enclosure 115 also houses a group of hard disk drives (HDDs) 130A, 130B, 130C, 130D, 130E, 130F (collectively referred to as 130). Each HDD is coupled through ports 122 with both switches. The system 100 also includes a pair of redundant sub-processors or service processors 140A, 140B (and collectively referred to as 140), such as SCSI Enclosure Services (SES) processors, each coupled through a fabric or network 142 via one of the switches 120A, 120B. The sub-processors 140A, 140B are coupled to each other with a processor-to-processor link 144. In the system 100 illustrated, the service processors 140A, 140B are SCSI Enclosure Service (SES) processors which manage switch functions and the enclosure environment. The adapters 110 are coupled to the switches 120 through fabric or network links 112. As illustrated in FIG. 2, a system 200 may include multiple enclosures 115, 150 and 160, each coupled in daisy-chain fashion to the ports of the upstream enclosure. Thus, any communications between an adapter 110 and a switch or HDD in an enclosure passes through the switches of upstream enclosures.

The system 100 may be based on a fibre channel-arbitrated loop (FC-AL) architecture, a serial attached SCSI (SAS) architecture, or other architecture in which includes a dual-port HDD configuration.

Referring to the flowchart of FIG. 3, a disk-related operation is initiated in the RAID adapter 110 (step 300). The RAID adapter 110 dispatches a command to a disk array processor 140 (or sub-processor) in an enclosure 115 (step 302) for the processor 140 to perform the operation on one or more drives 130 in the enclosure 115. The adapter 110 may dispatch the command to a processor in a single enclosure through a disk array switch or to processors in multiple enclosures through switches in the upstream enclosures. The adapter is then free to perform other functions (step 304). The processor 140 commences the specified operation on one or more selected drives 130, either sequentially, one at a time, or more than one (or all) at a time simultaneously (step 306). Upon completion of the operation, a notice of the results, such as “successful”, is transmitted by the processor 140 (step 308) and received by the adapter 110 (step 310). Thus, by offloading the task to the distributed sub-processors 140, the burden on the RAID adapter 110 is significantly reduced. System bandwidth usage is reduced by localizing fabric traffic to the switch link between the sub-processor and the targeted drive. Access to other drives within the enclosure (as well as within other enclosures) may be maintained.

If the selected operation is a drive firmware update (FIG. 4), the adapter 110 transfers the firmware to the processor 140 which manages the enclosure-based tasks for the enclosure 115 housing one or more selected drives 130 (step 400). The adapter also dispatches an “update” command to the processor(s) 140 (step 402), including an identification of drives to be updated, and then is able to resume other operations (step 404). The processor 140 establishes a path through the switch 120 (step 406) to the selected drive(s) 130 and performs the firmware update (step 408). The update operation is isolated and access to other drives in the enclosure 115 is unaffected. Upon completion of the update, notice is transmitted by the processor 140 to the RAID adapter 110 that the update was successful or that it failed (step 410). The processor 140 may transmit such a notice after each selected drive has been updated or may transmit a single batch notice after all selected drives have been updated. It will be appreciated that the firmware in more than one drive in an enclosure may be updated, either sequentially or simultaneously, and that the firmware in drives of more than one enclosure may also be updated simultaneously.

If the selected operation is a data scrubbing operation (FIG. 5), the adapter 110 issues the appropriate command, including an identification of one or more drives to be scrubbed, to the processor 140 which manages the enclosure-based tasks for the enclosure 115 housing the selected drive(s) 130 (step 500). The adapter 110 then is able to resume other operations (step 502). The processor 140 establishes a path through the switch 120 (step 504) to the selected drive 130 and attempts to access each sector of the selected drive 130 (step 506). The scrubbing operation is isolated and access to other drives in the enclosure 115 is unaffected. If an error is detected (step 508), the affected sector is identified (step 510) and an error notice is transmitted to the adapter 110 (step 512) which may initiate appropriate procedures (step 514). Otherwise, the processor 140 transmits a “success” notice to the adapter 110 (step 516). The sub-processor task is then complete (step 518) Again, it will be appreciated that data scrubbing of more than one drive in an enclosure may be performed, either sequentially or simultaneously, and that drives of more than one enclosure may also be scrubbed simultaneously.

If the selected operation is a secure data erasure operation (FIG. 6), the adapter 110 issues the appropriate command, including an identification of one or more drives having data to be erased and an erasure algorithm to be employed, to the processor 140 which manages the enclosure-based tasks for the enclosure 115 housing the selected drive(s) 130 (step 600). The adapter 110 then is able to resume other operations (step 602). The processor 140 establishes a path through the switch 120 (step 604) to the selected drive(s) 130 and executes the secure erase algorithm on the drive(s) 130 (step 606) by performing the required iterative write and verification cycles. The erasure operation is isolated and access to other drives in the enclosure 115 is unaffected. Upon completion and validation (step 608) of the erasure, the selected drive 130 is released back to the system (step 610) and notice is transmitted by the processor 140 to the RAID adapter 110 that the erasure was successful or that it failed (step 612). The processor 140 may transmit such a notice after each selected drive has been erased or may transmit a single batch notice after all selected drives have been erased. It will be appreciated that the data in more than one drive in an enclosure may be erased, either sequentially or simultaneously, and that the data in drives of more than one enclosure may also be erased simultaneously. In addition to reducing the burden on the adapter and on other system resources, erasing data according to the present invention allows a single erasure method to be certified rather than requiring separate methods for every operating system supported by a disk enclosure.

It is important to note that while the present invention has been described in the context of a fully functioning data processing system, those of ordinary skill in the art will appreciate that the processes of the present invention are capable of being distributed in the form of a computer readable medium of instructions and a variety of forms and that the present invention applies regardless of the particular type of signal bearing media actually used to carry out the distribution. Examples of computer readable media include recordable-type media such as a floppy disk, a hard disk drive, a RAM, and CD-ROMs and transmission-type media such as digital and analog communication links.

The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated. Moreover, although described above with respect to methods and systems, the need in the art may also be met with a computer program product containing instructions for executing instructions in a RAID storage system or a method for deploying computing infrastructure comprising integrating computer readable code into a computing system for executing instructions in a RAID storage system. 

1. A method for executing instructions in a RAID storage system having a RAID adapter, at least one array enclosure and a connecting fabric, each enclosure including a pair of redundant of disk array switches, each switch coupled to an array of storage drives, and a disk array processor coupled to both switches, the method comprising: initiating a specified operation in the RAID adapter; dispatching a command from the RAID adapter to a disk array processor for the disk array processor to perform the operation on one or more selected storage drives in the at least one enclosure; performing the operation on the one or more selected storage drives; transmitting results of the operation to the RAID adapter; and receiving the results in the RAID adapter from the disk array processor.
 2. The method of claim 1, wherein the specified operation comprises a drive firmware update and performing the operation comprises: a) receiving drive firmware from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) uploading the firmware into the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 3. The method of claim 1, wherein the specified operation comprises a drive scrubbing and performing the operation comprises: a) directing one of the switches in the enclosure to enable one of the selected storage drives; b) accessing sectors on media of the one storage drive; c) identifying any latent defects in the media of the one drive; and d) repeating steps a) through c) for each other selected storage drive.
 4. The method of claim 3, wherein transmitting the results comprises transmitting to the RAID adapter an identification of the one drive and a notice of any identified latent media defects.
 5. The method of claim 1, wherein the specified operation comprises a secure erasure and performing the operation comprises: a) receiving a drive erasure algorithm from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) executing the erasure algorithm on the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 6. The method of claim 1, wherein performing the specified operation comprises performing the specified operation on at least one storage drive simultaneously in more than one array enclosure.
 7. An intelligent storage enclosure adapted for communicating with a RAID adapter and containing an array of disk drives, a pair of redundant disk array switches, each switch coupled to each disk drive, and an enclosure processor, the enclosure processor configured to execute instructions offloaded by the RAID adapter, the instructions comprising: initiating a specified operation in the RAID adapter; dispatching a command from the RAID adapter to a disk array processor for the disk array processor to perform the operation on one or more selected storage drives in the enclosure; performing the operation on the one or more selected storage drives; transmitting results of the operation to the RAID adapter; and receiving the results in the RAID adapter from the disk array processor.
 8. The storage enclosure of claim 7, wherein the specified operation is selected from a group comprising drive firmware update, drive data scrub and secure drive erase.
 9. A disk array storage system, comprising a RAID adapter; at least one array enclosure, each comprising: a pair of redundant array switches; an array of storage drives, each storage drive coupled to both switches; and an array processor coupled to both switches; a connecting fabric; means for initiating a specified operation in the RAID adapter; the RAID adapter comprising means for dispatching a command to the disk array processor in at least one of the array enclosures for the disk array processor to perform the operation on one or more selected storage drives in the enclosure; the array processor comprising: means for performing the operation on the one or more selected storage drives; and means for transmitting results of the operation to the RAID adapter; and the RAID adapter further comprising means for receiving the results in the RAID adapter from the disk array processor.
 10. The system of claim 9, wherein the means for dispatching comprise means for dispatching a drive firmware update and the means for performing the specified operation comprises: a) means for receiving drive firmware from the RAID adapter; b) means for directing one of the switches in the enclosure to enable one of the selected storage drives; c) means for uploading the firmware into the one storage drive; and d) means for instructing that the means recited in a) through c) repeat the receiving, directing, directing and uploading, respectively, for each other selected storage drive.
 11. The system of claim 9, wherein the means for dispatching comprise means for dispatching instructions for a drive scrubbing and the means for performing the specified operation comprises: a) means for directing one of the switches in the enclosure to enable one of the selected storage drives; b) means for accessing sectors on media of the one storage drive; c) means for identifying any latent defects in the media of the one drive; and d) means for instructing the means recited in a) through c) repeat the directing, directing, accessing and identifying, respectively, for each other selected storage drive.
 12. The system of claim 11, wherein the means for transmitting the results comprises means for transmitting to the RAID adapter an identification of the one drive and a notice of any identified latent media defects.
 13. The system of claim 9, wherein the means for dispatching comprise means for dispatching instructions for a secure erasure and performing the specified operation comprises: a) receiving a drive erasure algorithm from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) executing the erasure algorithm on the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 14. The system of claim 9, wherein the means for performing the specified operation comprise means for performing the specified operation on at least one storage drive simultaneously in more than one array enclosure.
 15. An intelligent storage enclosure adapted for communicating with a host adapter, comprising a pair of redundant array switches, each switch coupled to a RAID adapter; an array of storage drives, each storage drive coupled to both switches through respective ports; an array processor coupled to both switches, the array processor configured to: a) receive a command from the RAID adapter to perform a specified operation on one or more selected storage drives in the array; b) direct one of the switches in the enclosure to enable one of the selected storage drives; c) perform the operation on the one or more selected storage drives; d) repeating steps a) through c) for each other selected storage drive; and e) transmit results of the operation to the RAID adapter.
 16. The storage enclosure of claim 15, wherein the specified operation is selected from a group comprising drive firmware update, drive data scrub and secure drive erase.
 17. A computer program product of a computer readable medium usable with a programmable computer, the computer program product having computer-readable code embodied therein for executing instructions in a RAID storage system having a RAID adapter, at least one array enclosure and a connecting fabric, each enclosure including a pair of redundant of disk array switches, each switch coupled to an array of storage drives, and a disk array processor coupled to both switches, the computer-readable code comprising instructions for: initiating a specified operation in the RAID adapter; dispatching a command from the RAID adapter to a disk array processor for the disk array processor to perform the operation on one or more selected storage drives in the at least one enclosure; performing the operation on the one or more selected storage drives; transmitting results of the operation to the RAID adapter; and receiving the results in the RAID adapter from the disk array processor.
 18. The computer program product of claim 17, wherein the specified operation comprises a drive firmware update and the instructions for performing the operation comprise instructions for: a) receiving drive firmware from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) uploading the firmware into the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 19. The computer program product of claim 17, wherein the specified operation comprises a drive scrubbing and the instructions for performing the operation comprise instructions for: a) directing one of the switches in the enclosure to enable one of the selected storage drives; b) accessing sectors on media of the one storage drive; c) identifying any latent defects in the media of the one drive; and d) repeating steps a) through c) for each other selected storage drive.
 20. The computer program product of claim 19, wherein the instructions for transmitting the results comprise instructions for transmitting to the RAID adapter an identification of the one drive and a notice of any identified latent media defects.
 21. The computer program product of claim 17, wherein the specified operation comprises a secure erasure and instructions for performing the operation comprise instructions for: a) receiving a drive erasure algorithm from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) executing the erasure algorithm on the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 22. The computer program product of claim 17, wherein instructions for performing the specified operation comprise instructions for performing the specified operation on at least one storage drive simultaneously in more than one array enclosure.
 23. A method for deploying computing infrastructure, comprising integrating computer readable code into a RAID storage system having a RAID adapter, at least one array enclosure and a connecting fabric, each enclosure including a pair of redundant of disk array switches, each switch coupled to an array of storage drives, and a disk array processor coupled to both switches, wherein the code, in combination with the computing system, is capable of performing the following: initiating a specified operation in the RAID adapter; dispatching a command from the RAID adapter to a disk array processor for the disk array processor to perform the operation on one or more selected storage drives in the at least one enclosure; performing the operation on the one or more selected storage drives; transmitting results of the operation to the RAID adapter; and receiving the results in the RAID adapter from the disk array processor.
 24. The method of claim 23, wherein the specified operation comprises a drive firmware update and performing the operation comprises: a) receiving drive firmware from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) uploading the firmware into the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 25. The method of claim 23, wherein the specified operation comprises a drive scrubbing and performing the operation comprises: a) directing one of the switches in the enclosure to enable one of the selected storage drives; b) accessing sectors on media of the one storage drive; c) identifying any latent defects in the media of the one drive; and d) repeating steps a) through c) for each other selected storage drive.
 26. The method of claim 25, wherein transmitting the results comprises transmitting to the RAID adapter an identification of the one drive and a notice of any identified latent media defects.
 27. The method of claim 23, wherein the specified operation comprises a secure erasure and performing the operation comprises: a) receiving a drive erasure algorithm from the RAID adapter; b) directing one of the switches in the enclosure to enable one of the selected storage drives; c) executing the erasure algorithm on the one storage drive; and d) repeating steps a) through c) for each other selected storage drive.
 28. The method of claim 23, wherein performing the specified operation comprises performing the specified operation on at least one storage drive simultaneously in more than one array enclosure. 